
public class TestTipo implements Test{
	
	// Atributos
	int codigo = 1065;
	String descripcion = "Novela";
	Tipo tipo = new Tipo(codigo, descripcion);	
	
	
	// Main
	public static void main(String[] args) {
		TestTipo test = new TestTipo();
		test.ejecutar();
	}
	
	
	// Formas de ejecución
	
	// Para utilizar desde el main de esta clase y probarla individualmente
	public void ejecutar(){
		boolean resultado = true; 
		System.out.println("TEST DE LA CLASE TIPO");
		
		// Comprobamos el atributo Codigo
		System.out.print("\t CODIGO: \t");
		if(!this.comprobarCodigo()){
			resultado=false;
			System.out.println("FALLO");
		}
		else
		{
			System.out.println("OK");
		}
	
	
		
		// Comprobamos el atributo Descripcion
		System.out.print("\t DESCRIPCION: \t");
		if(!this.comprobarDescripcion()){
			resultado=false;
			System.out.println("FALLO");
		}
		else
		{
			System.out.println("OK");
		}
		
		// Veredicto
		if(resultado){
			System.out.println("La clase funciona correctamente");
		}
		else
		{
			System.out.println("Existen Errores en la Clase");
		};
	}
	
	
	// Para utilizar en la clase Tests
	public boolean ejecutarSilencioso(){
		boolean resultado = true;
		
		// Comprobamos los atributos correspondientes
		if(!this.comprobarCodigo()){resultado=false;};
		if(!this.comprobarDescripcion()){resultado=false;};
		
		return resultado;
	}
	
	// Pruebas individuales
	private boolean comprobarCodigo(){
		if(this.getCodigo() == this.getTipo().getCodigo()){
			return true;
		}
		else
		{
			return false;
		}
	}
	
	private boolean comprobarDescripcion(){
		if(this.getDescripcion().compareTo(this.getTipo().getDescripcion())==0){
			return true;
		}
		else
		{
			return false;
		}
	}
			
	public String getClase() {
		return this.getTipo().getClass().getName();
	}
	
	
	// Getters And Setters	
	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}


	public Tipo getTipo() {
		return tipo;
	}


	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}


}
